home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1997-01-28 | 2.6 KB | 99 lines |
- 10 'DECIBEL - 01 DEC 93 rev. 27 SEP 96
- 20 IF EX$=""THEN EX$="EXIT"
- 30 CLS:KEY OFF
- 40 COLOR 7,0,1
- 50 LF=1/LOG(10) 'factor to convert natural log to log\base 10
- 60 UL$=STRING$(80,205)
- 70 C1=3:C2=30:C3=57 'column margins
- 80 '
- 90 '.....start
- 100 CLS:F1=0:F2=0:F3=0:DB=0
- 110 COLOR 15,2
- 120 PRINT " DECIBELS";TAB(57);"by George Murphy VE3ERP ";
- 130 COLOR 1,0:PRINT STRING$(80,223);
- 140 COLOR 7,0
- 150 PRINT TAB(C1);"Press number in < > to select factor you want to";
- 160 COLOR 0,7:PRINT " FIND ";:COLOR 7,0:PRINT ":"
- 170 PRINT UL$;
- 180 PRINT TAB(C1);"POWER";TAB(C2);"VOLTAGE";TAB(C3);"CURRENT"
- 190 PRINT TAB(C1);"SOUNDSOUNDSOUNDSOUNDSOUND";TAB(C2);"SOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND";TAB(C3);"SOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND"
- 200 PRINT TAB(C1);"<1> WATTS in (source)";
- 210 PRINT TAB(C2);"<4> VOLTS in (source)";
- 220 PRINT TAB(C3);"<7> CURRENT in (source)"
- 230 PRINT TAB(C1);"<2> WATTS out (load)";
- 240 PRINT TAB(C2);"<5> VOLTS out (load)";
- 250 PRINT TAB(C3);"<8> CURRENT out (load)"
- 260 PRINT TAB(C1);"<3> dB gain/loss";
- 270 PRINT TAB(C2);"<6> dB gain/loss";
- 280 PRINT TAB(C3);"<9> dB gain/loss"
- 290 PRINT UL$;
- 300 COLOR 0,7:LOCATE CSRLIN,30
- 310 PRINT " or Press <0> to EXIT "
- 320 COLOR 7,0
- 330 I$=INKEY$:IF I$=""THEN 330
- 340 IF I$="0"THEN CLS:RUN EX$
- 350 IF ASC(I$)<49 OR ASC(I$)>57 THEN 330
- 360 IF VAL(I$)>=1 AND VAL(I$)<=3 THEN GOSUB 400:GOTO 580
- 370 IF VAL(I$)>=4 AND VAL(I$)<=6 THEN GOSUB 460:GOTO 580
- 380 IF VAL(I$)>=7 AND VAL(I$)<=9 THEN GOSUB 520:GOTO 580
- 390 '
- 400 '.....power variables
- 410 N$="Power"
- 420 DIN=VAL(I$) 'data input number
- 430 M=10 'multiplier
- 440 RETURN
- 450 '
- 460 '.....voltage variables
- 470 N$="Voltage"
- 480 DIN=VAL(I$)-3 'data input number
- 490 M=20 'multiplier
- 500 RETURN
- 510 '
- 520 '.....current variables
- 530 N$="Current"
- 540 DIN=VAL(I$)-6 'data input number
- 550 M=20 'multiplier
- 560 RETURN
- 570 '
- 580 '.....data input
- 590 VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3
- 600 PRINT TAB(C1);" Input and Output values are expressed in the same ";
- 610 PRINT "unit of measurement."
- 620 PRINT UL$;
- 630 IF DIN<>1 THEN PRINT" ENTER ";N$;" in (source):";:LOCATE CSRLIN,30:INPUT F1
- 640 IF DIN<>2 THEN PRINT" ENTER ";N$;" out (load):";:LOCATE CSRLIN,30:INPUT F2
- 650 IF DIN<>3 THEN PRINT" ENTER ";N$;" dB gain/loss:";:LOCATE CSRLIN,30:INPUT DB
- 660 '
- 670 '.....calculation
- 680 IF F1 * F2 THEN DB=LF*M*LOG(F2/F1):GOTO 720
- 690 IF F1 * DB THEN F3=10^(DB/M):F2=F3*F1:GOTO 720
- 700 IF F2 * DB THEN F3=10^(DB/M):F1=F2/F3:GOTO 720
- 710 '
- 720 '.....print results
- 730 LOCATE 5
- 740 PRINT TAB(8);N$;" in (source):";TAB(28);USING "###,###.###";F1
- 750 PRINT TAB(8);N$;" out (load):";TAB(28);USING "###,###.###";F2
- 760 PRINT TAB(8);N$;" gain/loss:";TAB(28);USING "+######.###";DB;:PRINT " dB"
- 770 PRINT UL$;
- 780 GOTO 810
- 790 END
- 800 '
- 810 '.....end
- 820 GOSUB 860
- 830 GOTO 90
- 840 END
- 850 '
- 860 'HARDCOPY
- 870 GOSUB 980:LOCATE 25,2:COLOR 14,6
- 880 PRINT " Press 1 to print screen, 2 to print screen & ";
- 890 PRINT "advance paper, or 3 to continue.";:COLOR 7,0
- 900 Z$=INKEY$:IF Z$="3"THEN GOSUB 980:RETURN
- 910 IF Z$="1"OR Z$="2"THEN GOSUB 980:GOTO 930
- 920 GOTO 900
- 930 FOR QX=1 TO 24:FOR QY=1 TO 80
- 940 LPRINT CHR$(SCREEN(QX,QY));
- 950 NEXT QY:NEXT QX
- 960 IF Z$="2"THEN LPRINT CHR$(12)
- 970 GOTO 870
- 980 LOCATE 25,1:PRINT STRING$(80,32);:RETURN
-